﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using EBAYVN.Dao;
using EBAYVN.Util;
using EBAYVN.DOMAIN;

namespace EBAYVN.CUSTOMERS.Pages
{
    public partial class DangKiLichTrinh : System.Web.UI.Page
    {
        private LichTrinhDao LtrDao = new LichTrinhDao();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                LoadReference();
                BindDataForGird();
            }
        }
        protected THONGTINDK obj
        {
            get
            {
                var ddk = new THONGTINDK
                {
                    SLCONTAINER=int.Parse(txtSoLuongXe.Text.Trim()),
                    GHICHU=txtGhiChu.Text.Trim(),
                };
                if (!ddlLoaiHangHoa.SelectedValue.Equals("ORTHER"))
                    ddk.LOAIHH = ddlLoaiHangHoa.SelectedValue;
                ddk.NGAYDK = DateTime.Now;
                ddk.ISDUYETDON = false;
                return ddk;
            }

        }
        #region Windows Show
        private void ShowError(string message, string controlId)
        {
            ((TRANSPORTS)Page.Master).ShowError(message, controlId);
        }

        private void ShowError(string message)
        {
            ((TRANSPORTS)Page.Master).ShowError(message);
        }

        private void ShowInfor(string message)
        {
            ((TRANSPORTS)Page.Master).ShowInfor(message);
        }

        private void CloseWaitingDialog()
        {
            ((TRANSPORTS)Page.Master).CloseWaitingDialog();
        }

        private void SetReadonly(string id, bool isReadonly)
        {
            ((TRANSPORTS)Page.Master).SetReadonly(id, isReadonly);
        }

        private void SetControlValue(string id, string value)
        {
            ((TRANSPORTS)Page.Master).SetControlValue(id, value);
        }

        private void HideDialog(string divId)
        {
            ((TRANSPORTS)Page.Master).HideDialog(divId);
        }

        private void UnblockDialog(string divId)
        {
            ((TRANSPORTS)Page.Master).UnblockDialog(divId);
        }
        #endregion
        protected void BindDataForGird()
        {
            KHACHHANG kh=null;
            if (Session[Sessionkey.KHACHHANG_LOGIN] != null)
                kh = (KHACHHANG)Session[Sessionkey.KHACHHANG_LOGIN];
            var listemty = LtrDao.GetListIsNotRegistri(kh);
            gvList.DataSource = listemty;
            gvList.DataBind();
            upnlGrid.Update();
        }
        protected void LoadReference()
        {
            if (Request.QueryString[Sessionkey.Id_DANGKILTR] != null)
            {
                Session[Sessionkey.Id_DANGKILTR] = Request.QueryString[Sessionkey.Id_DANGKILTR].ToString();
            }
            var loaihh = new LoaiHangHoaDao().GetList();
            foreach (var hh in loaihh)
            {
                ddlLoaiHangHoa.Items.Add(new ListItem(hh.TENHH, hh.MAHH));
            }
        }
        private bool IsValid()
        {
            if (!String.IsNullOrEmpty(txtSoLuongXe.Text.Trim()))
            {
                try
                {
                    int? soluong = ConvertUtil.ToInteger(txtSoLuongXe.Text.Trim());
                    if (soluong == null)
                    {
                        ShowError("Số lượng container phải là số nguyên dương", txtSoLuongXe.ClientID);
                        CloseWaitingDialog();
                        return false;
                    }
                }
                catch (Exception ex)
                {
                    ShowError(ex.ToString());
                    CloseWaitingDialog();
                }
            }
            else
            {
                ShowError("Bạn phải nhập số lượng container", txtSoLuongXe.Text.Trim());
                CloseWaitingDialog();
                return false;
            }
            return true;
        }
        protected void btnDangKi_Click(object sender, EventArgs e)
        {
            if (Session[Sessionkey.KHACHHANG_LOGIN] == null)
            {
                Session[Sessionkey.KHACHHANG_LOGIN_FALSE] = "Bạn phải đăng nhập để thực hiện chức năng này";
                ShowError("Bạn phải đăng nhập để thực hiện chức này này");
                CloseWaitingDialog();
                Response.Redirect("Login.aspx", true);
            }
            if (IsValid())
            {
                var ddk = obj;
                if (ddk == null)
                {
                    ShowError("Đăng kí lịch trình không thành công");
                    CloseWaitingDialog();
                    return;
                }
                var strIds = Request["listIds"];
                if ((strIds != null) && (!string.Empty.Equals(strIds)))
                {
                    var listIds = strIds.Split(',');
                    if (listIds.Count() > 1)
                    {
                        ShowError("Mỗi lần đăng kí bạn chỉ được đăng kí một lịch trình");
                        CloseWaitingDialog();
                        return;
                    }
                    if (listIds.Count() == 1)
                    {
                        ddk.MALICHTRINH = listIds[0];
                    }
                }
                else
                {
                     ShowError("Bạn phải chọn vào một lịch trình để đăng kí");
                     CloseWaitingDialog();
                     return;
                }
                
                KHACHHANG kh = (KHACHHANG)Session[Sessionkey.KHACHHANG_LOGIN];
                ddk.IDKH = kh.IDKH;
                Message msg = new ThongTinDangKiDao().Insert(ddk);
                if (msg.MsgType != MessageType.Error)
                {
                    ShowInfor("Đăng kí thành công");
                    BindDataForGird();
                    CloseWaitingDialog();
                }
                else
                {
                    ShowError(msg.ToString());
                    CloseWaitingDialog();
                }
            }
        }

        protected void btnCancel_Click(object sender, EventArgs e)
        {
            txtSoLuongXe.Text = "";
            txtGhiChu.Text = "";
            upInfro.Update();
            CloseWaitingDialog();
        }

        protected void gvList_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                var id = e.CommandArgument.ToString();

                switch (e.CommandName)
                {
                    case "EditItem":

                        var objDb = LtrDao.Get(id);

                        if (objDb != null)
                        {
                            List<LICHTRINH> list = new List<LICHTRINH>();
                            list.Add(objDb);
                            rpLichTrinh.DataSource = list;
                            rpLichTrinh.DataBind();
                            upLichTrinhChiTiet.Update();
                            UnblockDialog("divChitiet");
                        }
                        break;
                }
            }
            catch (Exception ex)
            {
                
            }
        }
    }
}
